home *** CD-ROM | disk | FTP | other *** search
- #include <errno.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #include "perror.h"
-
- char * perrorstr(char * msg) {
- static char * err = NULL;
- static int errsize = 0;
- static int newsize;
- int theerrno = errno;
-
- newsize = strlen(msg) + strlen(strerror(theerrno)) + 5;
- if (!errsize) {
- errsize = newsize;
- err = malloc(errsize);
- } else if (errsize < newsize) {
- free(err);
- errsize = newsize;
- err = malloc(errsize);
- }
-
- sprintf(err, "%s: %s", msg, strerror(theerrno));
-
- return err;
- }
-
-